package com.cheng.service.FaceService;

import com.alibaba.fastjson.JSONObject;
import org.springframework.boot.jackson.JsonComponentModule;
import org.springframework.stereotype.Service;

import java.util.HashMap;

@Service
public interface UserService {
    void addUserInfo(HashMap<String,String> userInfo);

    String login(String openid);

    String loginTeacher(String openid);

    String  addClass(HashMap<String,String> classInfo);

    JSONObject getClassInfo(String openId,String cid);

    /**
     * 学生加入班级操作
     * */
    String joinClass(String openId,String cid);

    /**
     *开启签到功能操作
     * */
    JSONObject startSignIn(String cid,String type);

    /**
     * 修改签到表状态
     */
    void updateSignInfo(String openid ,String cid);

    /**
     * 得到签到记录的具体信息
     * **/
    JSONObject getUserSignInfo(String cid);

    /**
     * 得到一个同学的具体签到记录
     * */
    JSONObject queryClassSignInInfo(String cid, String openid);

    /**
     * 老师通过cid得到这门课程的签到次数和签到记录
     * */
    JSONObject queryByCidSignIn(String cid);

    /**
     * 老师通过cid和number查询班级的某一次具体信息
     * */
    JSONObject queryClassDetailSignInfo(String cid,String number);

    /**
     * 同学进行请假操作
     */
    void userLeaveHandler(HashMap<String,String> map);
    /**
     * 获得用户加入的所有班级
     * */
    JSONObject getUserJoinClass(String openId);

    /**
     * 获得教师创建的班级
     * */
    JSONObject getTeacherCreateClass(String openId);

    JSONObject checkLeaveState(String openId);


    void updateLeaveState(HashMap<String,String> leaveInfo, String cid);

    boolean checkUserClassLeave(String cid, String openId);

    /**
     * 得到用户的所有请假记录
     * */
    JSONObject getUserAllLeaveInfo(String openId);

    /**
     * 校验用户是否存在
     * **/
    boolean checkUSer(String userId);
}
